#pragma once
#include "GalconTypes.h"
#include <boost/noncopyable.hpp>

class GameInitInfo: private boost::noncopyable
{
public:
   GameInitInfo(PlayerID playerID, const PlanetsInitInfoVector& planets, const PlayersInitInfoVector& players);
   ~GameInitInfo();
   PlayerID GetPlayerID() const { return m_playerID; }
   unsigned int CountOfPlayers() const;
   unsigned int CountOfPlanets() const;
   const PlanetsInitInfoVector& PlanetsInitInfo() const { return m_planetsInitInfo; }
   void PlanetsInitInfo(PlanetsInitInfoVector& val) { m_planetsInitInfo.swap(val); }
   const PlayersInitInfoVector& PlayersInitInfo() const { return m_playersInitInfo; }
   void PlayersInitInfo(PlayersInitInfoVector& val) { m_playersInitInfo.swap(val); }   
private:
   const PlayerID m_playerID;
   PlanetsInitInfoVector m_planetsInitInfo;
   PlayersInitInfoVector m_playersInitInfo;
};

typedef boost::shared_ptr<GameInitInfo> GameInitInfoPtr;